package HomeWork;

import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Scanner;

public class TcpClient {
    public static void main(String[] args)throws Exception{
        int port = 8002;
        // 创建客户端对象
        Socket client = new Socket("127.0.0.1",port);
        // 创建io流对象
        // 因为传输的是类对象，所以用ObjectInputStream和ObjectOutputStream
        // ObjectInputStream 构造函数在创建时会尝试从输入流中读取流头信息。
        //如果服务器端尚未发送任何数据，或者发送的数据不完整，ObjectInputStream 将会阻塞，等待数据的到来。
        ObjectInputStream is = null;// 输入流
        ObjectOutputStream os = null;// 输出流
        Scanner sc = new Scanner(System.in);
        while(true){
            // 从键盘录入数据
            System.out.print("请输入老师的信息:(输入quit结束)");
            String text = sc.nextLine();
            // 判断结束条件
            if("quit".equals(text)){
                Teacher teacher = new Teacher();
                os = new ObjectOutputStream(client.getOutputStream());
                os.writeObject(teacher);
                break;
            }
            // 解析输入的数据
            String[] arr = text.split("-");
            String name = arr[0];// 姓名
            int age = Integer.parseInt(arr[1]);// 年龄
            double salary = Double.parseDouble(arr[2]);// 工资
            Teacher teacher = new Teacher(name,age,salary);
            os = new ObjectOutputStream(client.getOutputStream());
            // 发送数据给服务器
            os.writeObject(teacher);
        }
        is = new ObjectInputStream(client.getInputStream());
        // 接收服务器发送回来的数据
        String text = (String)is.readObject();
        System.out.println(text);
        // 关闭资源 处理异常 注意判空
        // 后使用的先关闭
        if(is != null){is.close();}
        if(os != null){os.close();}
        if(sc != null){sc.close();}
        if(client != null){client.close();}
    }
}